<?php

require_once 'class.DbConnectionFestival.php';

/**
 * Description of PathManager
 *
 * @author B049125
 */
class PathManager {

    private $dbConn;

    function __construct() {
        $this->dbConn = new DbConnectionFestival();
    }

    /**
     * Permette di ottenere la strutturazione in dato di tutti i percorsi
     * @param <array<int>> $arrIds gli id dei percorsi richiesti
     */
    function getPercorsi($arrIds) {
        foreach ($arrIds as $val) {
            $ret[$val] = $this->getPercorso($val);
        }
        return $ret;
    }

    /**
     * Restituisce la codifica sottoforma di array di un singolo percorso
     * @param <int> $id l'id del percorso richiesto
     * @return <Percorso> un array formattato a codificare un percorso
     */
    function getPercorso($id) {
        $arr = $this->dbConn->executeQueryReturnStringArray("
            select p.id as id,
                p.nome as nome,
                p.utente as utente,
                ehp.eventi_id as eventi_id,
                ehp.ordine as ordine,
                ehp.tempo_bk_id as tempo_id
                from percorsi p
                join eventi_has_percorsi ehp
                on p.id=ehp.percorsi_id
            where p.id=$id
            ");
        //ok, sto ripetendo operazioni inutili, e allora?
        foreach ($arr as $linep) {
            $ret['nome'] = $linep['nome'];
            $ret['id'] = $linep['id'];
            $ret['utente'] = $linep['utente'];
            $ret['eventi'][$linep['eventi_id']]['id'] = $linep['eventi_id'];
            $ret['eventi'][$linep['eventi_id']]['tempo_id'] = $linep['tempo_id'];
            $ret['eventi'][$linep['eventi_id']]['ordine'] = $linep['ordine'];
        }
        //print_r($ret);
        return $ret;
    }

    /**
     * restituisce dati relativi a tutti i percorsi 
     * @return <array> array contenente per ogni riga un array con id percorso, id giorno, nome percorso e nome utente
     */
    function getAllPercorsi() {
        $arr=$this->dbConn->executeQueryReturnStringArray("select id, giorni_id,nome,utente from percorsi");
        return $arr;
    }

    /**
     * restituisce dati relativi a tutti i percorsi per un determinato giorno
     * @param <type> $idGiorno l'id del giorno del percorso
     * @return <array> array contenente per ogni riga un array con id percorso, id giorno, nome percorso e nome utente
     */
    function getAllPercorsiFromIdGiorno($idGiorno) {
        return $this->dbConn->executeQueryReturnStringArray("select id, giorni_id,nome,utente from percorsi where giorni_id=$idGiorno");
    }

    /**
     * Recupera tutti i percorsi relativi ad un determinato giorno
     * @param <string> $data la data per il percorso
     * @return <array> array contenente per ogni riga un array con id percorso, id giorno, nome percorso e nome utente
     */
    function getAllPercorsiFromGiorno($data) {
        return $this->dbConn->executeQueryReturnStringArray("select id, giorni_id,nome,utente from percorsi p join giorni g on p.giorni_id g.id where g.data=$data");
    }
}
?>
